package cn.iocoder.yudao.module.crossborder.product.api.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 商品信息 DTO
 *
 * @author LHL
 */
@Schema(description = "RPC 服务 - 商品信息 DTO")
@Data
public class ProductDTO {

    @Schema(description = "商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;

    @Schema(description = "商品编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "PROD001")
    private String code;

    @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "iPhone 15 Pro")
    private String name;

    @Schema(description = "商品简介", example = "最新款iPhone，性能强劲")
    private String summary;

    @Schema(description = "商品描述", example = "详细的商品描述信息")
    private String description;

    @Schema(description = "商品分类编号", example = "2048")
    private Long categoryId;

    @Schema(description = "商品分类名称", example = "手机数码")
    private String categoryName;

    @Schema(description = "商品品牌编号", example = "3072")
    private Long brandId;

    @Schema(description = "商品品牌名称", example = "Apple")
    private String brandName;

    @Schema(description = "商品类型", example = "1")
    private Integer type;

    @Schema(description = "商品状态", example = "1")
    private Integer status;

    @Schema(description = "商品单位", example = "台")
    private String unit;

    /**
     * 商品状况
     */
    private Integer conditionType;

    /**
     * 重量（kg）
     */
    private BigDecimal weight;

    @Schema(description = "商品体积(cm³)", example = "500")
    private BigDecimal volume;

    /**
     * 长度（cm）
     */
    private BigDecimal length;

    /**
     * 宽度（cm）
     */
    private BigDecimal width;

    /**
     * 高度（cm）
     */
    private BigDecimal height;

    /**
     * 原产国代码
     */
    private String originCountry;

    /**
     * HS编码
     */
    private String hsCode;

    /**
     * 条形码
     */
    private String barcode;

    /**
     * 最小订购量
     */
    private Integer minOrderQuantity;

    /**
     * 最大订购量
     */
    private Integer maxOrderQuantity;

    /**
     * 保质期（天）
     */
    private Integer shelfLifeDays;

    /**
     * 存储条件
     */
    private String storageConditions;

    /**
     * 是否危险品
     */
    private Boolean isDangerous;

    /**
     * 是否易碎品
     */
    private Boolean isFragile;

    /**
     * 是否液体
     */
    private Boolean isLiquid;

    /**
     * 商品规格
     */
    private String spec;

    /**
     * 是否多规格
     */
    private Boolean multiSpec;

    /**
     * 商品成色
     */
    private Integer condition;

    /**
     * 库存数量
     */
    private Integer stock;

    /**
     * 预警库存
     */
    private Integer alertStock;

    /**
     * 商品主图
     */
    private String mainImage;

    /**
     * 商品图片列表
     */
    private List<String> images;

    /**
     * 商品视频
     */
    private String video;

    /**
     * 商品价格
     */
    private BigDecimal price;

    /**
     * 市场价格
     */
    private BigDecimal marketPrice;

    /**
     * 成本价格
     */
    private BigDecimal costPrice;

    /**
     * 货币代码
     */
    private String currency;





    /**
     * 排序
     */
    private Integer sort;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否上架
     */
    private Boolean published;

    /**
     * 上架时间
     */
    private LocalDateTime publishTime;

    /**
     * SEO标题
     */
    private String seoTitle;

    /**
     * SEO关键词
     */
    private String seoKeywords;

    /**
     * SEO描述
     */
    private String seoDescription;

    /**
     * 商品标签
     */
    private String tags;

    /**
     * 销量
     */
    private Integer sales;

    /**
     * 虚拟销量
     */
    private Integer virtualSales;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

}
